package Orm.jdbc.base;

import com.mysql.cj.jdbc.Driver;

import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 1.jdbc 数据库驱动加载
 */
public class Study01_LoadDriverManager {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        /**
         * 这种方式采用Class.forName类加载机制进行对执行类型的加载
         * 注意：当对指定类型进行加载的时候，会对静态属性进行初始化，所以能完成驱动的加载
         *     static {
         *         try {
         *             DriverManager.registerDriver(new Driver());
         *         } catch (SQLException var1) {
         *             throw new RuntimeException("Can't register driver!");
         *         }
         *     }
         */
        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            System.out.println("成功mysql加载驱动！！");
        }catch (Exception e){
            e.printStackTrace();
        }
        /**
         * 这种方式不仅显式依赖，而且会对驱动加载两次，重复了。
         * 第一次式类加载的时候，第二次就是这里的显式驱动加载
         */
        try{
            //这种方式依赖了驱动jar包
            DriverManager.registerDriver(new Driver());
            System.out.println("成功mysql加载驱动！！");
        }catch (Exception e){
            e.printStackTrace();
        }
    }

}
